`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date: 2021/10/17 12:51:45
// Design Name: 
// Module Name: timer
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//////////////////////////////////////////////////////////////////////////////////


module timer(
    input clk,
    input rst,
    input en,
    output reg out
    );
    reg [29:0] m;
    initial m=30'b0;
    always @(posedge clk or negedge rst) begin
        if (rst==0) m <=0;
        else if (m==50000001) m<=0;
        else if (en==1) m <= m+1;
    end

	always@(posedge clk)
	begin
	  if(m==50000000) //可通过更改条件值改变脉冲周期
	    out<=~out;
	else
	    out<=out;
	end
    
endmodule
